Fixes to xend for backends in domains other than dom0.
@return: deferred - calls callback with vm
"""
- d = self.create_blkif()
- d.addCallback(lambda x: self.create_devices())
+ d = self.create_devices()
+ d.addCallback(lambda x: self.create_blkif())
d.addCallback(self._configure)
return d
@return: deferred
"""
- ctrl = xend.blkif_create(self.dom, recreate=self.recreate)
- back = ctrl.getBackendInterface(0)
- return back.connect(recreate=self.recreate)
+ if (self.get_devices("vbd") == None):
+ ctrl = xend.blkif_create(self.dom, recreate=self.recreate)
+ back = ctrl.getBackendInterface(0)
+ return back.connect(recreate=self.recreate)
+ else:
+ return None
def dom_construct(self, dom, config):
"""Construct a vm for an existing domain.
self.writeRequest(msg, response=response)
def connectInterface(self, val):
- self.evtchn = channel.eventChannel(0, self.controller.dom)
+ self.evtchn = channel.eventChannel(self.dom, self.controller.dom)
log.debug("Connecting blkif to event channel %s ports=%d:%d",
str(self), self.evtchn['port1'], self.evtchn['port2'])
msg = packMsg('blkif_be_connect_t',
def recv_fe_interface_connect(self, val, req):
if not req: return
- self.evtchn = channel.eventChannel(0, self.controller.dom)
+ self.evtchn = channel.eventChannel(self.dom, self.controller.dom)
msg = packMsg('netif_be_connect_t',
{ 'domid' : self.controller.dom,
'netif_handle' : self.vif,